import axios from 'axios'
import qs from 'qs'
import { TOKEN_NAME } from "../utils/const"

const service = axios.create({
  baseURL:'/api',  //添加统一前缀api，在vite.config.js配置跨域rewrite的时候会去掉
	timeout: 3000,  
	headers: {
       'Content-Type': 'application/x-www-form-urlencoded'
  }
})
//请求拦截器
//处理post请求是，会转化为urlencode格式（默认是json格式）,请求拦截器
// 让成功的结果不是response 而是response.data,相应拦截器的失败回调

//调用登录接口保存服务端颁发的token，保存到localstorage
//请求的时候从localstorage中取出token，放到header.authoration里面
service.interceptors.request.use(
  request => {
    if(request.method=='post'){
      request.data = qs.stringify(request.data) 
      console.log("intercept",request.data)
    }
    //如果登录了就有token,把token放在请求头里面做做鉴权
    const token = localStorage.getItem(TOKEN_NAME)
    request.headers.Authorization = token
    return request
  },
  error => Promise.error(error)
)

/**
 * 如果接口返回的是401需要用户登录,那么则调启登录界面
 */

service.interceptors.response.use(
  response => {
    return response.data;
},error => {
  const err = error.response.data;
  console.log("interceptor response error ", err)
  if("10102" == err.code){//token过期
    alert("请先登录")
    //调整到登录界面 const router = useRouter()
   // router.push('/login')
  } else {
    alert("警告:" + err.message)
  }
  return Promise.reject(error) //接口500抛出异常（不走页面逻辑）
})

export default service
